package com.ruoyi.erp.service;

import java.util.Date;
import java.util.List;
import com.ruoyi.erp.domain.ProjectHourAbnormal;

/**
 * 异常工时Service接口
 * 
 * @author sauger
 * @date 2022-04-13
 */
public interface IProjectHourAbnormalService 
{
    /**
     * 查询异常工时
     * 
     * @param id 异常工时主键
     * @return 异常工时
     */
    public ProjectHourAbnormal selectProjectHourAbnormalById(Integer id);

    /**
     * 查询异常工时列表
     * 
     * @param projectHourAbnormal 异常工时
     * @return 异常工时集合
     */
    public List<ProjectHourAbnormal> selectProjectHourAbnormalList(ProjectHourAbnormal projectHourAbnormal);

    /**
     * 新增异常工时
     * 
     * @param projectHourAbnormal 异常工时
     * @return 结果
     */
    public int insertProjectHourAbnormal(ProjectHourAbnormal projectHourAbnormal);

    /**
     * 修改异常工时
     * 
     * @param projectHourAbnormal 异常工时
     * @return 结果
     */
    public int updateProjectHourAbnormal(ProjectHourAbnormal projectHourAbnormal);

    /**
     * 批量删除异常工时
     * 
     * @param ids 需要删除的异常工时主键集合
     * @return 结果
     */
    public int deleteProjectHourAbnormalByIds(String ids);

    /**
     * 删除异常工时信息
     * 
     * @param id 异常工时主键
     * @return 结果
     */
    public int deleteProjectHourAbnormalById(Integer id);

    public void calculateProjectHourAbnormal(Integer holidayConfigTypeId, Date beginData, Date endDate);

    public void calculateProjectHourAbnormal(Integer holidayConfigTypeId, Date beginDate);

    /**
     * 汇总时间段内的异常信息
     * @param projectHourAbnormal
     * @return
     */
    public ProjectHourAbnormal groupProjectHourAbnormal(ProjectHourAbnormal projectHourAbnormal);
}
